home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / guienv374.lha / GUIEnvironment / M2Amiga / Examples / RequesterExample.mod < prev    next >
Text File  |  1994-10-31  |  6KB  |  136 lines

  1. (****************************************************************************
  2.  
  3. $RCSfile: RequesterExample.mod $
  4.  
  5. $Revision: 1.5 $
  6.     $Date: 1994/10/31 17:12:06 $
  7.  
  8.     GUIEnvironment example: Requester
  9.  
  10.     M2Amiga Modula-2 Compiler V4.3
  11.  
  12.   Copyright © 1994, Carsten Ziegeler
  13.                     Augustin-Wibbelt-Str.7, 33106 Paderborn, Germany
  14.  
  15. ****************************************************************************)
  16. MODULE RequesterExample;
  17.  
  18. (* This example shows all available requesters using ReqTools if available *)
  19.  
  20. (* RequesterExample uses the following catalog strings 201.. : texts
  21.                                                        240.. : gadgets
  22.                                                        250   : END     *)
  23.  
  24.   FROM SYSTEM     IMPORT ADR, ADDRESS, TAG;
  25.   FROM GadToolsD  IMPORT GtTags, textKind;
  26.   FROM IntuitionD IMPORT WindowPtr, WindowFlagSet, WindowFlags, IDCMPFlagSet,
  27.                          IDCMPFlags;
  28. IMPORT D : GUIEnvD,
  29.        L : GUIEnvL,
  30.        GS: GUIEnvSupport;
  31.  
  32. CONST version = ADR("$VER: RequesterExample 37.4 (31.10.94)\n");
  33.  
  34. VAR win : WindowPtr;
  35.     gui : D.GUIInfoPtr;
  36.  
  37.     choose : LONGINT;
  38.     file, dir : ARRAY[0..255] OF CHAR;
  39.     tagbuf : ARRAY[0..19] OF LONGCARD;
  40.     args : ARRAY[0..4] OF ADDRESS; (* for the arguments *)
  41.  
  42. BEGIN
  43.  
  44.   win := L.OpenGUIWindowA( 50, 50, 300, 100, ADR("GUIEnvironment - RequesterExample"),
  45.                           IDCMPFlagSet{closeWindow, newSize,
  46.                                        refreshWindow},
  47.                           WindowFlagSet{activate, windowDepth, windowClose,
  48.                                         windowDrag}, NIL, NIL);
  49.   IF win # NIL THEN
  50.  
  51.     gui := L.CreateGUIInfoA(win, TAG(tagbuf, D.guiTextFont, GS.TopazAttr(),
  52.                                              D.guiCatalogFile, ADR("GUIEnvExamples.catalog"),
  53.                                              D.guiGadgetCatalogOffset, 240, NIL));
  54.     IF gui # NIL THEN
  55.  
  56.       L.CreateGUIGadgetA(gui, 10, 40, 280, 20, textKind,
  57.                          TAG(tagbuf, gttxText, L.GetCatStr(gui, 240, ADR("Use requesters")),
  58.                                      gttxBorder, TRUE, NIL));
  59.  
  60.       IF L.DrawGUIA(gui, NIL) = D.geDone THEN
  61.  
  62.         (* Return value not needed, ok requester *)
  63.         IGNORE L.GUIRequestA(gui, ADR("This is the requester demo !\nEnjoy it !"),
  64.                              D.gerRTOKKind,
  65.                              TAG(tagbuf, D.gerLocaleID, 201, NIL));
  66.  
  67.         (* doitReqKind *)
  68.         WHILE L.GUIRequestA(gui, ADR("Do you want to see this requester again ?"),
  69.                             D.gerRTDoItKind,
  70.                             TAG(tagbuf, D.gerGadgets, L.GetCatStr(gui, 230, ADR("YES|NO")),
  71.                                         D.gerLocaleID, 202, NIL)) = D.gerYes DO
  72.         END;
  73.  
  74.         (* Yes/no/cancel  requester *)
  75.         choose := L.GUIRequestA(gui, ADR("Do you want to see some asl requesters ?"),
  76.                                 D.gerRTYNCKind,
  77.                                 TAG(tagbuf, D.gerGadgets, L.GetCatStr(gui, 231, ADR("YES|NO|CANCEL")),
  78.                                             D.gerLocaleID, 203, NIL));
  79.         IF choose = D.gerYes THEN
  80.  
  81.           (* And now the asl requesters supported by GUIEnvironment *)
  82.  
  83.           file := "guienv.library";
  84.           dir  := "sys:libs";
  85.  
  86.           (* First a requester to choose the best library ! *)
  87.           IF L.GUIRequestA(gui, ADR("Choose the best library"), D.gerRTFileKind,
  88.                            TAG(tagbuf, D.gerPattern, ADR("#?.library"),
  89.                                        D.gerFileBuffer, ADR(file),
  90.                                        D.gerDirBuffer, ADR(dir),
  91.                                        D.gerLocaleID, 204, NIL)) = D.gerYes THEN
  92.             args[0] := ADR(dir);
  93.             args[1] := ADR(file);
  94.             IGNORE L.GUIRequestA(gui, ADR("You choice was:\ndir : %s\nfile: %s"),
  95.                                  D.gerRTOKKind, TAG(tagbuf, D.gerArgs, ADR(args),
  96.                                                           D.gerLocaleID, 205, NIL));
  97.           ELSE
  98.             IGNORE L.GUIRequestA(gui, ADR("You cancelled it ! (Sniff..)"),
  99.                                  D.gerRTOKKind,
  100.                                  TAG(tagbuf, D.gerLocaleID, 206, NIL));
  101.           END;
  102.  
  103.           (* And now a save dir requester with no pattern gadget *)
  104.           dir := "ram:t";
  105.           IF L.GUIRequestA(gui, ADR("Choose directory to save something..."),
  106.                            D.gerRTDirKind, TAG(tagbuf, D.gerNameBuffer, ADR(dir),
  107.                                                      D.gerPattern, NIL,
  108.                                                      D.gerSave, TRUE,
  109.                                                      D.gerLocaleID, 207, NIL)) = D.gerYes THEN
  110.  
  111.             args[0] := ADR(dir);
  112.             IGNORE L.GUIRequestA(gui, ADR("You selected directory:\n%s"),
  113.                                  D.gerRTOKKind, TAG(tagbuf, D.gerArgs, ADR(args),
  114.                                                           D.gerLocaleID, 208, NIL));
  115.           ELSE
  116.             IGNORE L.GUIRequestA(gui, ADR("You cancelled it ! (Snuff..)"),
  117.                                  D.gerRTOKKind,
  118.                                  TAG(tagbuf, D.gerLocaleID, 209, NIL));
  119.           END;
  120.  
  121.         ELSIF choose = D.gerNo  THEN
  122.           IGNORE L.GUIRequestA(gui, ADR("Click OK to quit !"), D.gerRTOKKind,
  123.                                TAG(tagbuf, D.gerLocaleID, 210, NIL));
  124.         END;
  125.  
  126.       END;
  127.     END;
  128.   END;
  129.  
  130. CLOSE
  131.   IF win # NIL THEN
  132.     L.CloseGUIWindow(win);
  133.     win := NIL;
  134.   END;
  135. END RequesterExample.
  136.